LW2000

 

Nombre:                Just Another Commander

Versión:                2.01

Editor:                  Klappert

Víctima:                JAC.EXE

Herramientas:       W32Dasm

                            HIEW

                            Cerebro

Cracker:                LW2000

Tutorial:                número 49

URL:                      http://www.a-l-e-x.de

 

Renuncia: Este tutorial tiene una finalidad únicamente educativa. No asumo ninguna responsabilidad por el mal uso de éste material.

 

1.     Bien, vamos a hacer un crack rápido con ‘Just Another Commander’. Arrancamos nuestro ‘engendro’ y vermos una pantalla NAG: anotamos el texto. Cargamos el programa en W32Dasm y hacemos un ‘dead list’.

2.     Vamos a nuestra cadena:

 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:00523877(U)

|

:00523887 803D14E753001E    cmp byte ptr [0053E714], 1E

:0052388E 7621              jbe 005238B1    >’Bad Boy’

:00523890 6A00              push 00000000

:00523892 668B0D103D5200    mov cx, word ptr [00523D10]

:00523899 33D2              xor edx, edx

 

Possible StringData from Code Obj ->"Sie haben JAC bereits an 30

    Tagen getestet. Wenn Sie das Programm weiter nutzen m"

                                  |

:0052389B B8A03D5200        mov eax, 00523DA0

:005238A0 E87B36F6FF        call 00486F20

:005238A5 C60500E7530000    mov byte ptr [0053E700], 00

:005238AC E9A1000000        jmp 00523952

 

3.     ¡Hmmm! ¡Bastante sencillo! Lo que queremos es que el programa se cargue siempre, incluso si se ha traspasado el período de evaluación. Por lo tanto, ¡el salto tiene que ejecutarse siempre!

4.     Haremos esto cambiando la instrucción ‘JBE’ a ‘JMP’. (No voy a decirle ahora cómo hacer esto; ya lo debería saber. Si no es así, lea mis anteriores tutoriales).

5.     ¡Bien, parece funcionar estupendamente! Pero la pantalla Nag y la pantalla Splash continúan ahí … Vamos a la pantalla principal y echamos un vistazo a la barra de títulos ‘Just Another Commander - UNREGISTRIERTE SHAREWAREVERSION’.

6.     Hacemos un ‘dead list’ y buscamos la cadena ‘Just Another Commander’:

 

:00523A65 FF5250          call [edx+50]

 

* Possible StringData Ref from Code Obj ->"Just Another Commander"

                                  |

:00523A68 BA403C5200    mov edx, 00523C40 >Anotamos el offset

:00523A6D A130765200    mov eax, dword ptr [00527630]

:00523A72 E80554F0FF    call 00428E7C

:00523A77 B9C0E55300    mov ecx, 0053E5C0

:00523A7C BAD8644E00    mov edx, 004E64D8

 

7.     Anotamos el offset de la posición ‘00523A68’ ya que tenemos que saltar aquí si queremos ir a la pantalla principal. Pero, ¿desde aquí saltamos a la pantalla principal? ¡Hmmm! ¿Recuerda la comprobación de la fecha? Bien, vamos a ‘0052388E’, otra vez. Tenemos que cambiar el ‘JBE 005238B1’ (o bien ‘JMP 005238B1 si ya está cambiado) a ‘JMP 00122E58’ (el nuevo offset que hemos anotado).

8.     ¡Vamos a hacerlo así! Abrimos ‘JAC.EXE’ en HIEW y entramos en el modo ‘DeCode’. Pulsamos F5 y vamos al offset ‘122C8E’. Pulsamos F3 y F2 para introducir comandos:

 

jmp 00122E68    [Intro]

[Esc]

 

9.     Guardamos nuestro trabajo. A propósito: si obtenemos un mensaje debido al cambio de fecha, anotamos el mensaje y vamos a la ‘String Data Reference’ correspondiente:

 

:005237A6 DFE0             fstsw ax

:005237A8 9E               sahf

:005237A9 7331             jnb 005237DC >¡Bad Boy!

:005237AB DD0504E75300     fld qword ptr [0053E704]

:005237B1 83C4F4           add esp, FFFFFFF4

:005237B4 DB3C24           fstp tbyte ptr [esp]

:005237B7 9B               wait

:005237B8 8D45F0           lea eax, dword ptr [ebp-10]

:005237BB E80843EEFF       call 00407AC8

:005237C0 8B55F0           mov edx, dword ptr [ebp-10]

:005237C3 8D45DC           lea eax, dword ptr [ebp-24]

:005237C6 E8DD0CEEFF       call 004044A8

:005237CB 8D4DDC           lea ecx, dword ptr [ebp-24]

:005237CE 33D2             xor edx, edx

:005237D0 A1F4E65300       mov eax, dword ptr [0053E6F4]

:005237D5 E83A74F2FF       call 0044AC14

:005237DA EB1C             jmp 005237F8

 

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:005237A9(C)  >Vamos aquí

|

:005237DC 6A00             push 00000000

:005237DE 668B0D103D5200   mov cx, word ptr [00523D10]

:005237E5 B203             mov dl, 03

 

Possible StringData Ref from Code Obj->"Sie haben doch wohl

                                     ->nicht an der"

                                     ->"Datumseinstellung

                                     ->rumgespielt"

                                     ->"um die Shareware-

                                     ->Kontrolle zu"

                                     ->"umgehen??"

|

:005237E7 B81C3D5200       mov eax, 00523D1C

 

10.  Ahora anotamos el offset de la dirección ‘005237A9’ y vamos al mismo en HIEW. Cambiamos el ‘7331’ a ‘9090’ y ya nunca volveremos a saber del mensaje.

 

Si no le gusta la cadena ‘UNREGISTRIERTE SHAREWAREVERSION’, la buscamos en el ‘.EXE’ con HIEW. Buscamos la cadena (en hexadecimal):

 

554E5245474953545249455254452053484152455741524556455253494F4E

 

y la sustituimos con:

 

52656769737472696572742066FC72204C5732303030205B4369415D2020

 

o lo que usted quiera (pero recuerde que deben tener la misma longitud).

 

Ahora, ¡pruébelo!

 

¡Enhorabuena! ¡Ya es usted un usuario registrado!

 

¡Se acabó! Fácil, ¿no? ¿Algún comentario? Envíeme un email a LW2000@gmx.net. o vaya a http://www.LW2000.cjb.net

 

Gracias a tKC por sus tutoriales. Empecé leyendo su primer tutorial y todavía sigo leyéndolos.

 

Traducción de: MeGaBiTe